requireJS(['constant', 'site', 'handlebars', 'public'], function (Constant, site, Handlebars, Public) {
    Handlebars.registerHelper('if_eq', function (v1, v2, opts) {
        if (v1 == v2)
            return opts.fn(this);
        else
            return opts.inverse(this);
    });
    var url = {
        selectRoleList: "manager/selectRoleList.do",//获取所有的角色
        selectPageAdminList: "manager/selectPageAdminList.do",//分页查询所有员工
        cascade: "manager/departmentCascade.do",
        edit: "manager/editAdmin.do",
        delete: "manager/deleteAdmins.do",
        colseopen: "manager/updateAdminsEnable.do",
        reset: "manager/resetAdminPassword.do"
    }
    //
    var frontData = {
        pageNum: 1
    };


    var listid = "";
    var systemcode;
    //初始化


    $("#add_content_top2").hide();
    $("#add_content_top3").hide();
    $("#add_content_top4").hide();
    $("#search_content_top2").hide();
    $("#search_content_top3").hide();
    $("#search_content_top4").hide();
    get_role();

    var init = function () {

        //选择操作按钮
        $(".operations").on('change',function(){
            var obj = $(this).find("option:selected");
            //操作时携带id
            var id = obj.data('id');
            systemcode = $(this).data('systemcode');
            listid = id;

            // 编辑
            if (obj.val() == 'edit') {
                send(-1);
                get_role();
                get_basic(id, 1);
                $('.editwinBox').toggle();
                $(".operations").val('-1')
            }
            // 重置
            if (obj.val() == 'reset') {
                showReset();
                $(".operations").val('-1')
            }
            // 删除
            if (obj.val() == 'delete') {
                showDelect('delect');
                $(".operations").val('-1')
            }
            // 禁用
            if (obj.val() == 'close') {
                showDelect('close');
                $(".operations").val('-1')
            }
            // 开启
            if (obj.val() == 'open') {
                showDelect('open');
                $(".operations").val('-1')
            }
        })


        //拿到所有的复选框，当有复选框没选上的时候,取消全选
        $("input:checkbox[name='ch_id']").on('click', function () {
            var checkboxs = $("input:checkbox[name='ch_id']");
            var sum = 0;
            var length = checkboxs.length;
            $.each(checkboxs, function (i, checkbox) {
                if ($(checkbox).prop("checked")) {
                    sum++;
                }
            })
            if (sum == length) {
                $('#checkboxAll').prop("checked", true);
            } else {
                $('#checkboxAll').prop("checked", false);
            }
        })
        //全选和全不选
        $('#checkboxAll').on('click', function () {
            $("input[name='ch_id']").prop("checked", $(this).prop("checked"));
        })


        // 批量操作

        $("#bulk_operation").unbind().on('change', function () {
            var val = $(this).find("option:selected").val();
            // 批量删除
            if (val == 1) {
                var inp = $("input[name='ch_id']");//获得所有check按钮
                var count = 0;//计数
                for (var i = 0; i < inp.length; i++) {
                    if (inp[i].checked) {
                        count++;
                        if (count < 2) {
                            listid = inp[i].value;
                        } else {
                            listid += ("," + inp[i].value);
                        }
                    }
                }
                if (count != 0) {
                    showDelect('delect');
                } else {
                    Constant.fn.Message("I", "未选择")
                }


                $(".tabHint").val('-1')
            } // 批量禁用
            if (val == 2) {
                var inp = $("input[name='ch_id']");//获得所有check按钮
                var count = 0;//计数
                for (var i = 0; i < inp.length; i++) {
                    if (inp[i].checked) {
                        count++;
                        if (count < 2) {
                            listid = inp[i].value;
                        } else {
                            listid += ("," + inp[i].value);
                        }
                    }
                }
                if (count != 0) {
                    showDelect('close');
                } else {
                    Constant.fn.Message("I", "未选择")
                }

                $(".tabHint").val('-1')
            }
            //批量开启
            if (val == 3) {
                var inp = $("input[name='ch_id']");//获得所有check按钮
                var count = 0;//计数
                for (var i = 0; i < inp.length; i++) {
                    if (inp[i].checked) {
                        count++;
                        if (count < 2) {
                            listid = inp[i].value;
                        } else {
                            listid += ("," + inp[i].value);
                        }
                    }
                }
                if (count != 0) {
                    showDelect('open');
                } else {
                    Constant.fn.Message("I", "未选择")
                }
                $(".tabHint").val('-1')

            }
        })
        // 新增弹框
    }


    //分页查询所有员工
    all();

    $("#addUser").click(function () {
        $(".winBoxAdd").toggle();
        //$("#add_content_top2").html('');
        //$("#add_content_top3").html('');
        //$("#add_content_top4").html('');
        addsend(-1);
        site.send({
            url: 'manager/buildAdminUsername.do',
            //async:false
            callback: function (data) {
                data = JSON.parse(data)
                $("#addEmpno").val(data.content);
            }
        })

    })


    function all() {
        site.send({
            url: url.selectPageAdminList,
            //async:false
            data: frontData,
            callback: function (data) {
                data = JSON.parse(data)
                if (data.type == '1') {
                    if (data.content) {
                        $('.result').html(data.content.total ? data.content.total : '0')
                    }

                    var source = $("#manager_tpl").html();
                    var template = Handlebars.compile(source);
                    var list = data.content.list;
                    list.total = data.content.total;
                    var html = template(list);
                    $('#manager_list').html(html);

                    init();

                    Public.record('bt_admin')

                    // 分页
                    $('.product-page-container').createPager({
                        current: frontData.pageNum,
                        total: data.content.total,
                        pageSize: data.content.pageSize,
                        needInput: false,
                        backFn: function (current) {
                            frontData.pageNum = current;
                            all();
                        }
                    })

                }
                else {
                    Constant.fn.Message('F', data.msg)
                }
            }
        })
    }


    function get_role() {
        //获取所有角色
        site.send({
            url: url.selectRoleList,
            //async:false
            data: frontData,
            callback: function (data) {
                data = JSON.parse(data)

                var source = $("#add_content_top_tpl5").html();
                var template = Handlebars.compile(source);
                var list = data.content;
                var html = template(list);
                $('.add_content_top5').html(html);


                var source = $("#edit_content_top_tpl5").html();
                var template = Handlebars.compile(source);
                var list = data.content;
                var html = template(list);
                $('.edit_content_top5').html(html);

                //$('#add_content_top5').html(html);
                //$('#add_content_top5').show();


                $('#search_content_top5').html(html);
                $('#search_content_top5').show()

            }
        })

    }

// 查询第一级select
    function send(parentId) {
        site.send({
            url: url.cascade,
            async: false,
            data: {
                parentId: parentId,
            },
            callback: function (data) {
                data = JSON.parse(data)
                // 赋值给模板
                var source = $("#edit_content_top_tpl").html();
                var template = Handlebars.compile(source);
                var html = template(data);
                $('#edit_content_top').html(html);

                // 判断查询是否为空
                if (data != "") {

                    sendTow(1);
                } else {
                    $("#edit_content_top").hide();
                }
                // select的change状态
                $(".edit_content_top").unbind('change');
                $("#edit_content_top").on('change', function () {
                    if ($(this).val()) {
                        sendTow($(this).val())
                    }
                    else {
                        $('#edit_content_top2,#edit_content_top3,#edit_content_top4').hide();
                        $('.edit_content_top2').html('<option>选择分公司</option>')
                        $('.edit_content_top3').html('<option>选择部门</option>')
                        $('.edit_content_top4').html('<option>选择区域</option>')
                        $('.edit_content_top5').val('');
                    }
                })
            }
        })


    }

// 查询第二级select
    function sendTow(parentId) {

        site.send({
            url: url.cascade,
            async: false,
            data: {
                parentId: parentId,
            },
            callback: function (data) {
                data = JSON.parse(data)

                var source = $("#edit_content_top_tpl2").html();
                var template = Handlebars.compile(source);

                var html = template(data);
                $('.edit_content_top2').html(html);
                $('#edit_content_top2').show();

                // 判断查询是否为空
                if (data != "") {
                    //  sendThree(76);
                    //$("#edit_content_top2").show();
                    //$("#edit_content_top3").show();
                    //$("#edit_content_top4").show();
                } else {
                    $("#edit_content_top2").hide();
                    $("#edit_content_top3").hide();
                    $("#edit_content_top4").hide();
                }
                $(".edit_content_top2").unbind('change');

                $(".edit_content_top2").on('change', function () {
                    if ($(this).val()) {
                        sendThree($(this).val())
                    }
                    else {
                        $("#edit_content_top3,#edit_content_top4").hide();
                        $('.edit_content_top3').html('<option>选择部门</option>')
                        $('.edit_content_top4').html('<option>选择区域</option>')
                        $('.edit_content_top5').val('');
                    }
                })
            }
        })
    }

// 查询第三级select
    function sendThree(parentId) {

        site.send({
            url: url.cascade,
            async: false,
            data: {
                parentId: parentId,
            },
            callback: function (data) {
                data = JSON.parse(data)

                var source = $("#edit_content_top_tpl3").html();
                var template = Handlebars.compile(source);
                var html = template(data);
                $('.edit_content_top3').html(html);
                $('#edit_content_top3').show();

// 判断查询是否为空
                if (data != "") {
                    //sendFore(77);
                    //$("#edit_content_top3").show();
                    //$("#edit_content_top4").show();

                } else {
                    $("#edit_content_top3").hide();
                    $("#edit_content_top4").hide();
                }

                $(".edit_content_top3").unbind('change');
                $(".edit_content_top3").on('change', function () {
                    if ($(this).val()) {
                        sendFore($(this).val())
                    }
                    else {
                        $("#edit_content_top4").hide();
                        $('.edit_content_top4').html('<option>选择区域</option>')
                        $('.edit_content_top5').val('');
                    }
                })
            }
        })
    }

// 查询第四级select
    function sendFore(parentId) {

        site.send({
            url: url.cascade,
            async: false,
            data: {
                parentId: parentId,
            },
            callback: function (data) {
                data = JSON.parse(data)
                if(data.length){
                    var source = $("#edit_content_top_tpl4").html();
                    var template = Handlebars.compile(source);

                    var html = template(data);
                    $('.edit_content_top4').html(html);
                    $('#edit_content_top4').show();
                }else{
                    $('#edit_content_top4').hide();
                }



                if (data != "") {
                    //$("#edit_content_top4").show();

                } else {
                    $("#edit_content_top4").hide();
                }
                $("#edit_content_top4").unbind('change');
                $(".edit_content_top4").on('change', function () {
                    $('.edit_content_top5').val('');
                })
            }
        })
    }


// 基本信息赋值
    var by_value;
    var get_basic = function (id, type) {
        site.send({
            url: url.edit,
            // async:false,
            data: {
                id: id,
                type: type
            },
            callback: function (data) {
                data = JSON.parse(data)

                var source = $("#edit_content_tpl").html();
                var template = Handlebars.compile(source);
                var list = data.content;
                var html = template(list);

                $('#edit_content').html(html);
                // 编辑赋值

                $("#edit_content_top5 option[value=" + data.content.rid + "]").attr("selected", true);
                if (!data.content.parentId0) {

                } else {
                    $("#edit_content_top option[value=" + data.content.parentId0 + "]").attr("selected", true);
                    sendTow(data.content.parentId0)


                }
                if (!data.content.parentId1) {
                    $("#edit_content_top2").hide();
                    $("#edit_content_top3").hide();
                    $("#edit_content_top4").hide();

                } else {
                    $("#edit_content_top2 option[value=" + data.content.parentId1 + "]").attr("selected", true);
                    $("#edit_content_top2").val(data.content.parentId1)
                    sendThree(data.content.parentId1)
                }

                if (!data.content.parentId2) {
                    $("#edit_content_top3").hide();
                    $("#edit_content_top4").hide();
                } else {
                    $("#edit_content_top3 option[value=" + data.content.parentId2 + "]").attr("selected", true);
                    sendFore(data.content.parentId2)
                }
                if (!data.content.parentId3) {

                    $("#edit_content_top4").hide();
                } else {
                    $("#edit_content_top4 option[value=" + data.content.parentId3 + "]").attr("selected", true);

                }

                $("#edit_content_top5").on('change', function () {

                })
            }
        })
    }
// 编辑提交
    var edit_text, edit_d_name;
    $(".updataBut").click(function () {
        var departmentId = $(".edit_content_top4 option:selected").val() || $(".edit_content_top3 option:selected").val() || $(".edit_content_top2 option:selected").val() || $("#edit_content_top option:selected").val();
        var edit_d_name = $(".edit_content_top4 option:selected").text() || $(".edit_content_top3 option:selected").text() || $(".edit_content_top2 option:selected").text() || $("#edit_content_top option:selected").text();
        if (!departmentId) {
            Constant.fn.Message("I", "请选择部门");
            return;
        }
        if (!$("#edit_content_top5 .edit_content_top5 option:selected").val()) {
            Constant.fn.Message("I", "请选择角色")
            return;
        }
        if (!$("#realName").val()) {
            Constant.fn.Message("I", "真实姓名为空")
            return;
        }
        if (!$("#username").val()) {
            Constant.fn.Message("I", "员工号为空")
            return;
        }
        if (!$("#telephone").val()) {
            Constant.fn.Message("I", "手机号码为空")
            return;
        }
        if (!$("#mail").val()) {
            Constant.fn.Message("I", "邮箱地址为空")
            return;
        }
        site.send({
            url: 'manager/updateAdminInfo.do',
            async: false,
            data: {
                username: $("#empno").val(),
                realName: $("#realName").val(),
                telephone: $("#telephone").val(),
                id: listid,
                empno: $("#username").val(),
                mail: $("#mail").val(),
                departmentId: departmentId,
                roleId: $("#edit_content_top5 .edit_content_top5").val(),
                d_name: add_d_name,
                systemcode: systemcode
            },
            callback: function (data) {
                data = JSON.parse(data);
                if (data.type == 1) {
                    $(".winBox").hide();
                    Constant.fn.Message("T", data.msg);
                    pjaxReload();
                } else {
                    Constant.fn.Message("F", data.msg);
                }


            }
        })

    })
// 删除提交
    var confirmToSubmit = function (status) {
        $(".delectBtn").unbind().click(function () {
            // 判断点击删除
            if (status == 'delect') {
                site.send({
                    url: url.delete,
                    //async:false
                    data: {
                        ids: listid,
                        reason: $(".delect_reason").val()
                    },
                    callback: function (data) {
                        data = JSON.parse(data);
                        if (data.type == 1) {
                            $(".winBoxDelect").toggle();
                            $(".winBoxDelect_gray").toggle();
                            Constant.fn.Message("T", data.msg);
                            pjaxReload();
                        } else {
                            Constant.fn.Message("F", data.msg);
                        }
                    }
                })
            }
// 判断点击的是禁用或开启
            if (status == 0 || status == 1) {
                site.send({
                    url: url.colseopen,
                    //async:false
                    data: {
                        locked: status,
                        ids: listid,
                        reason: $(".delect_reason").val()
                    },
                    callback: function (data) {

                        data = JSON.parse(data);
                        if (data.type == 1) {
                            $(".winBoxDelect").toggle();
                            $(".winBoxDelect_gray").toggle();
                            Constant.fn.Message("T", data.msg);
                            pjaxReload()
                        } else {
                            Constant.fn.Message("F", data.msg);
                        }
                    }
                })
            }
        })


    }
//  重置提交
    $(".resetPsw_Btn").click(function () {
        site.send({
            url: url.reset,
            //async:false
            data: {
                id: listid,
                password: $(".resetPasswork").val(),
                againPassword: $(".resetAgainPasswork").val(),
                systemcode: systemcode
            },
            callback: function (data) {

                data = JSON.parse(data);
                if (data.type == 1) {
                    $(".resetPasswork").val("");
                    $(".resetAgainPasswork").val("");
                    $(".winBoxReset").toggle();
                    Constant.fn.Message("T", data.msg);
                    pjaxReload()
                } else {
                    Constant.fn.Message("F", data.msg);
                }


            }
        })
    })

// 禁用、启用、删除弹框
    function showDelect(status) {

        $(".winBoxDelect").toggle();
        if (status == 'delect') {
            $(".winBoxDelect_title").text("删除用户")

            $(".winBoxDelect_content").text("您确定要删除所选的用户吗")
            confirmToSubmit(status);
        }
        if (status == 'close') {
            $(".winBoxDelect_title").text("禁用用户")
            $(".winBoxDelect_content").text("您确定要禁用所选的用户吗")
            confirmToSubmit(0);
        }
        if (status == 'open') {
            $(".winBoxDelect_title").text("开启用户")
            $(".winBoxDelect_content").text("您确定要开启所选的用户吗")
            confirmToSubmit(1);
        }
    }

// 重置弹框
    function showReset() {
        $(".resetPasswork").val("");
        $(".resetAgainPasswork").val("");
        $(".winBoxReset").toggle();

    }

    //新增/查询第一级select
    function addsend(parentId) {
        site.send({
            url: url.cascade,
            //async:false
            data: {
                parentId: parentId,
            },
            callback: function (data) {
                data = JSON.parse(data)

                var source = $("#add_content_top_tpl").html();
                var template = Handlebars.compile(source);
                var html = template(data);
                $('#add_content_top').html(html);

                var source2 = $("#search_content_top_tpl").html();
                var template2 = Handlebars.compile(source2);
                var html2 = template2(data);
                $('#search_content_top').html(html2);


                if (data != "") {


                } else {
                    $("#add_content_top").hide();
                    $("#search_content_top").hide()
                }

                $("#add_content_top").unbind().on('change', function () {
                    var obj = $(this).find("option:selected");
                    if (!obj.val() || obj.val() == '-1') {
                        $("#add_content_top2,#add_content_top3,#add_content_top4").hide();

                        $(".add_content_top2").html('<option>选择分公司</option>');
                        $(".add_content_top3").html('<option>选择部门</option>');
                        $(".add_content_top4").html('<option>选择区域</option>');
                        $('.add_content_top5').val('');
                    } else {
                        addsendTwo($(this).val(), 'add')
                    }
                })
                $("#search_content_top").unbind().on('change', function () {
                    var obj = $(this).find("option:selected");
                    if (!obj.val() || obj.val() == '-1') {
                    } else {
                        addsendTwo($(this).val(), 'search')
                    }
                })
            }
        })


    }

    //新增/查询第二级select
    function addsendTwo(parentId, state) {

        site.send({
            url: url.cascade,
            //async:false
            data: {
                parentId: parentId,
            },
            callback: function (data) {
                data = JSON.parse(data)
                var source = $("#add_content_top_tpl2").html();
                var template = Handlebars.compile(source);
                var html = template(data);
                $('.add_content_top2').html(html);
                $('#add_content_top2').show();

                $('#search_content_top2').html(html);

                if (data != "") {
                    if (state == 'search') {
                        $("#search_content_top2").show();
                    }
                    if (state = 'add') {
                        $("#add_content_top2").show();
                    }


                } else {

                    $("#add_content_top3").hide();
                    $("#add_content_top4").hide();
                    $("#search_content_top3").hide();
                    $("#search_content_top4").hide();
                }

                $(".add_content_top2").on('change', function () {
                    var obj = $(this).find("option:selected");
                    if (!obj.val() || obj.val() == '-1') {
                        $("#add_content_top3,#add_content_top4").hide();

                        $(".add_content_top3").html('<option>选择部门</option>');
                        $(".add_content_top4").html('<option>选择区域</option>');
                        $('.add_content_top5').val('');
                    } else {
                        addsendThree($(this).val(), 'add')
                    }
                })
                $("#search_content_top2").on('change', function () {
                    var obj = $(this).find("option:selected");
                    if (!obj.val() || obj.val() == '-1') {
                    } else {
                        addsendThree($(this).val(), 'search')
                    }
                })
            }
        })
    }

    //新增/查询第三级select
    function addsendThree(parentId, state) {

        site.send({
            url: url.cascade,
            //async:false
            data: {
                parentId: parentId,
            },
            callback: function (data) {
                data = JSON.parse(data)

                var source = $("#add_content_top_tpl3").html();
                var template = Handlebars.compile(source);
                var html = template(data);
                $('.add_content_top3').html(html);
                $('#add_content_top3').show();

                $('#search_content_top3').html(html);


                if (data != "") {
                    if (state == 'search') {
                        $("#search_content_top3").show();
                    }
                    if (state == 'add') {
                        $("#add_content_top3").show();
                    }


                } else {

                    $("#add_content_top4").hide();
                    $("#search_content_top4").hide();
                }

                $(".add_content_top3").on('change', function () {
                    var obj = $(this).find("option:selected");
                    if (!obj.val() || obj.val() == '-1') {
                        $("#add_content_top4").hide();

                        $(".add_content_top4").html('<option>选择区域</option>');
                        $(".add_content_top5").val('');
                    } else {
                        addsendFore($(this).val(), 'add')
                    }
                })
                $("#search_content_top3").on('change', function () {
                    var obj = $(this).find("option:selected");
                    if (!obj.val() || obj.val() == '-1') {
                    } else {
                        addsendFore($(this).val(), 'search')
                    }
                })
            }
        })
    }



    //新增/查询第四级select
    function addsendFore(parentId, state) {

        site.send({
            url: url.cascade,
            //async:false
            data: {
                parentId: parentId,
            },
            callback: function (data) {
                data = JSON.parse(data)
                if(data.length){
                    var source = $("#add_content_top_tpl4").html();
                    var template = Handlebars.compile(source);
                    var html = template(data);
                    $('.add_content_top4').html(html);
                    $('#add_content_top4').show();
                }else{
                    $('#add_content_top4').hide();
                }




                $('#search_content_top4').html(html);

                if (data != "") {
                    if (state == 'add') {
                        $("#add_content_top4").show();
                        //$("#add_content_top4").after('<div></div>');
                    }
                    if (state == 'search') {
                        $("#search_content_top4").show();
                    }


                } else {
                    //$("#add_content_top4").hide();
                    $("#search_content_top4").hide();

                }
                /*$("#add_content_top4").on('change', function () {

                })*/
            }
        })
    }

    $('.add_content_top4').on("change",function(){
        $('.add_content_top5').val('');
    })


    addsend(-1);
//新增提交
    var add_text, add_d_name;
    $(".addBtn").click(function () {
        /*add_text = $("#add_content_top4").val();
        add_d_name = $("#add_content_top4 option:selected").text();
        if (add_text == null || !add_text) {
            add_text = $("#add_content_top3").val()
            add_d_name = $("#add_content_top3 option:selected").text();
        }*/
        var departmentId = $(".add_content_top4 option:selected").val() || $(".add_content_top3 option:selected").val() || $(".add_content_top2 option:selected").val() || $("#add_content_top option:selected").val();
        var add_d_name = $(".add_content_top4 option:selected").text() || $(".add_content_top3 option:selected").text() || $(".add_content_top2 option:selected").text() || $("#add_content_top option:selected").text();
        if (!departmentId) {
            Constant.fn.Message("I", "请选择部门");
            return;
        }
        if (!$("#add_content_top5 .add_content_top5 option:selected").val()) {
            Constant.fn.Message("I", "请选择角色")
            return;
        }
        if (!$("#addRealName").val()) {
            Constant.fn.Message("I", "真实姓名为空")
            return;
        }
        if (!$("#addUserName").val()) {
            Constant.fn.Message("I", "员工号为空")
            return;
        }
        if (!$("#addTelephone").val()) {
            Constant.fn.Message("I", "手机号码为空")
            return;
        }
        if (!$("#addMail").val()) {
            Constant.fn.Message("I", "邮箱地址为空")
            return;
        }

        site.send({
            url: 'manager/insertAdminInfo.do',
            //async:false
            data: {
                username: $("#addEmpno").val(),
                realname: $("#addRealName").val(),
                telephone: $("#addTelephone").val(),
                empno: $("#addUserName").val(),
                mail: $("#addMail").val(),
                departmentId: departmentId,
                roleId: $("#add_content_top5 .add_content_top5 option:selected").val(),
                d_name: add_d_name
            },
            callback: function (data) {
                data = JSON.parse(data);
                if (data.type == 1) {
                    $(".winBoxAdd").hide();
                    Constant.fn.Message("T", data.msg);
                    pjaxReload()
                } else {
                    Constant.fn.Message("F", data.msg);
                }

            }
        })

    })
//

//搜索提交
    var search_text;
    $("#search_btn").click(function () {
        search_text = $("#search_content_top4").val();
        if (search_text == null || !search_text) {
            search_text = $("#search_content_top3").val()
        }
        frontData.pageNum = 1;
        frontData.roleId = $("#search_content_top5").val();
        frontData.locked = $("#search_state option:selected").val();
        frontData.keyword = $("#search_keyword").val();
        frontData.departmentId = search_text;
        all();
    })

})


